#ifndef ADABOOST_H__CMU_
#define ADABOOST_H__CMU_

#include "boosting_algorithm.h"

class adaboost : public boosting_algorithm {
public:
	virtual void initialize_distribution(double * d, double * y, int l);
	virtual double get_alpha(double * y, double * p, double * d, int l);
	virtual void update_distribution(double alpha, double * y, double * p, int l, double * d_t, double * d_t1);
	virtual double predict(double * alpha, double * p, int n);
	virtual bool full_updating();
	virtual string get_type();
protected :
	virtual double get_error(double * y, double * p, double * d, int l);
	virtual double get_h(double p);
};

#endif